时间分片 (Time Slicing):
T1.ime Slicing 是 Fiber 的完全体形态, React 在 渲染 的时候, 会将任务拆分成多个小任务, 
这些细分的任务则会在主线程空闲的时候进行执行, 在执行任务的期间可以随时进行暂停
2.使用时间切片的缺点是, 任务运行的总时间变长了, 这是因为它每处理完一个小任务后,
 主线程会空闲出来, 并且在下一个小任务开始处理之前有一小段延迟, 但是为了避免卡死浏览器, 这种取舍是很有必要的
这里使用到了一个原生的 API, window.requestIdleCallback() 该方法参数是一个回调函数, 
这个函数将在浏览器空闲时期被调用, 这使开发者能够在主事件循环上执行后台和低优先级工作, 
而不会影响延迟关键事件, 如动画和输入响应


更多参考: 时间切片 (Time Slicing)

悬停或者暂停 (Suspense):  调用 render 函数 -> 发现有异步请求 -> 悬停, 等待异步请求结果 -> 再渲染展示数据
在 render 函数中, 我们可以写入一个异步请求, 请求数据
react 会从我们缓存中读取这个缓存
如果有缓存了, 直接进行正常的 render
如果没有缓存, 那么会抛出一个 异常, 这个异常是一个 promise(很有意思, 通过抛出异常来实现)
当这个 promise 完成后(请求数据完成), react 会继续回到原来的 render 中 
(实际上是重新执行一遍 render), 把数据render 出来
完全同步写法, 没有任何异步 callback 之类的东西
